import { BadRequestException, ParseIntPipe } from "@nestjs/common";

export function generateParseIntPipe(name) {
    return new ParseIntPipe({
      exceptionFactory() {
        throw new BadRequestException(name + ' 应该传数字');
      } 
    })
}


/* import { BadRequestException, ParseIntPipe } from "@nestjs/common";
import { IsPositive } from 'class-validator';

// 生成一个自定义管道，用于验证查询参数是否为正整数
export function generatePositiveIntPipe(name: string) {
  // 创建一个 ParseIntPipe 实例，用于将查询参数转换为整数
  const parseIntPipe = new ParseIntPipe({
    // 如果转换失败，则抛出 BadRequestException 异常
    exceptionFactory: () => {
      throw new BadRequestException(`${name} 应该传数字`);
    }
  });

  // 返回一个对象，该对象包含 transform 方法，用于验证查询参数是否为正整数
  return {
    async transform(value: string) {
      // 调用 ParseIntPipe 的 transform 方法，将查询参数转换为整数
      const parsedValue = await parseIntPipe.transform(value, undefined);

      // 如果转换失败，则抛出 BadRequestException 异常
      if (isNaN(parsedValue)) {
        throw new BadRequestException(`${name} 应该传数字`);
      }

      // 调用 IsPositive 装饰器，验证查询参数是否为正整数
      const isPositive = await IsPositive()(parsedValue);

      // 如果不是正整数，则抛出 BadRequestException 异常
      if (!isPositive) {
        throw new BadRequestException(`${name} 应该大于 0`);
      }

      // 返回转换后的整数
      return parsedValue;
    }
  };
} */
